In the last twenty years microprocessor speed increased by several orders of magnitude and Digital Signal Processors (DSPs) became ubiquitous. It became feasible and attractive to transition from analog communication to digital communication. Digital communication offers the major advantage of being able to more efficiently utilize bandwidth and allows for error correcting techniques to be used. Thus by using digital technology one can send more information through a given allocated spectrum space and send the information more reliably. Digital communication can use radio links (wireless) or physical network media (e.g., fiber optics, copper networks).
Digital communication can be used for different types of communication such as audio, video or telemetry for example. A digital communication system includes a sending device and a receiving device. In a system capable of two-way communication each device has both sending and receiving circuits. In a digital sending or receiving device there are multiple staged processes through which data is passed between the stage at which it is input through an input (e.g., microphone, camera, sensor) and the stage at which it is used to modulate a carrier wave and transmitted. After (1) being input and then digitized, (2) some initial noise filtering may be applied, followed by (3) source encoding and (4) finally channel encoding. The present invention as will be described in the succeeding pages can be considered to fall in the source encoding stage.
The main goal of source encoding is to reduce the bit rate while maintaining perceived quality to the extent possible. Different standards have been developed for different types of media. For example the JPEG standard applies to still images while the IS-127 standard applies to audio. In a concession to practicality, source encoders are often designed with using vector lengths corresponding to a DSP register length or an even multiple a multiple of the DSP register length (e.g., 128 bits). Now for each application there is some limit on the allocated channel bandwidth. Based on this limit, the designer of the source encoder/decoder will settle on a certain number of possible codes in view of all the degrees of freedom of each portion of the media being encoded. For example, in the case of audio encoding, there may be a certain frame size established (e.g., 160 samples long), a certain number of allowed audio pulses in each audio frame, and a certain number of total amplitude quanta to be allocated to the pulses. The choices made by the designer are intended to maximize the perceptual quality while staying within the allocated bandwidth. Because everything is discrete and quantized one can enumerate the total number of unique frames. The total number of unique possibilities for each frame is closely related to the allocated bandwidth because it must be possible to send through the channel during the time interval of the audio frame sufficient information to identify the one unique frame which best corresponds to the audio during that frame. The larger the total number of unique frames, the more information is required to uniquely identify one particular frame. Now it may so happen that the total number of unique frames (n) is not a power of two, i.e., n≠2k, where k is an integer. Assume for example that n<2k in this case if one were to use a k bit integer to represent each frame there would always be some range of higher valued integers near 2k that would never be sent. This represents inefficiency in the system, because one has allocated k bits but the k bits are not fully utilized.
U.S. Pat. No. 7,230,550 discloses a method of addressing the aforementioned inefficiency by splitting a set of multi-bit codewords into Most Significant Bit (MSB) portions and Least Significant Bit (LSB) portions and combining the MSB portions and LSB portions in a manner that reduces the overall bit size needed to represent the set. Unfortunately if a large number of codewords are to be processed in this manner as may be called for in a high bandwidth, high fidelity system, the '550 patent would require a high precision multiplication operations to be performed. This is computational expensive and therefore disadvantageous.
Although the example above is with reference to audio and discusses frames, more generally different types of media (e.g., image, video, telemetry & audio) may be characterized (in whole or in part) by one of n possible codes, where n is an integer (possibly selected based on bandwidth limits) but is not a power of 2 e.g., n≠2k where k is an integer. Analogously, there would also arise in inefficiency in such a generalized case.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.